﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Chenxin.Lib.Utility;
using System.Collections.Generic;

public partial class PermitManager : PageBase
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //所有权限
        ltPermits.Text = getAllPermits();
    }

    //*******************************************
    //功能概要       ：得到所有权限
    //参数説明       ：context 请求的上下文
    //返回值説明     ：无
    //功能詳細       ：得到所有权限
    //作成者         ：he.jifeng 
    //作成日         ：2010-03-31 
    //*******************************************
    public string getAllPermits()
    {
        //业务权限类
        Chenxin.Lib.Hr.BLL.Base_Permit_Define bllBasePermitDefine = new Chenxin.Lib.Hr.BLL.Base_Permit_Define();
        try
        {
            string strHtml;
            int ShowLevel;
            //全权限
            if (CurrentUserInfo.ContainsPermit(Constants.Permit_ViewAllRole))
            {
                ShowLevel = 10;
            }
            //城市权限
            else if (CurrentUserInfo.ContainsPermit(Constants.Permit_ViewCityRole))
            {
                ShowLevel = 20;
            }
            //公司权限
            else
            {
                ShowLevel = 30;
            }
            //权限类
            ArrayList lsPermits = bllBasePermitDefine.GetModelListDividedByType(ShowLevel);
            //显示类别
            hidShowLevel.Value = ShowLevel.ToString();
            //输出权限信息
            strHtml = crtHtmlOfAllPermits(lsPermits);

            return strHtml;
        }
        catch (Exception ex)
        {
            //输出错误信息
            System.Console.Write(ex.Message);
            //相应ERROR
            Context.Response.Redirect("~/ErrorPage.aspx?msg=" + ex.Message);
            return null;
        }
    }

    //*******************************************
    //功能概要       ：生成Html
    //参数説明       ：lsPermits 权限列表
    //返回值説明     ：Html显示字符串
    //功能詳細       ：根据得到的权限列表生成Hmtl显示
    //作成者         ：he.jifeng 
    //作成日         ：2010-03-31 
    //*******************************************
    private string crtHtmlOfAllPermits(ArrayList lsPermits)
    {
        //Html结果
        StringBuilder strHtml = new StringBuilder();
        //权限类别名
        string strPermitNm;

        //循环权限列表
        for (int idxPermits = 0; idxPermits < lsPermits.Count; idxPermits++)
        {
            List<Chenxin.Lib.Hr.Entity.Base_Permit_Define> curCldPermits = ((List<Chenxin.Lib.Hr.Entity.Base_Permit_Define>)lsPermits[idxPermits]);
            //各组的首个对象
            Chenxin.Lib.Hr.Entity.Base_Permit_Define model = curCldPermits[0];
            strHtml.Append("<div class='clsPermitType'>");
            strHtml.Append(model.PermitGroup);
            strHtml.Append("</div>");
            strHtml.Append("<div class='clsShowPermit'>");
            strHtml.Append("<ul>");
            for (int idxCldPermits = 0; idxCldPermits < curCldPermits.Count; idxCldPermits++)
            {
                strPermitNm = curCldPermits[idxCldPermits].PermitName;
                strHtml.Append("<li>【<a title='" + strPermitNm + "' class='clsEditPermit' href='#" + curCldPermits[idxCldPermits].PermitID + "'>" + strPermitNm + "</a>】</li>");
            }
            strHtml.Append("</ul>");
            strHtml.Append("</div>");
        }

        return strHtml.ToString();
    }
}
